/**
 * UeberweisungDAO.java
 *
 * author: Daniel Rudigier
 * date: 28.4.2008
 * project: ocumed
 * 
 * Interfaces:
 *  UeberweisungDAO
 */
package ocumed.persistenz.dao;

import java.util.List;

import ocumed.persistenz.hibernate.OcUeberweisung;

/**
 * DAO interface for OcUeberweisung
 */
public interface UeberweisungDAO extends DAOUserTransaction {

    /**
     * persist a object, and return the generated id
     *
     * @param transientInstance
     * @return the generated id
     */
    public Integer persist(OcUeberweisung transientInstance);

    /**
     * save or update object.
     *
     * @param instance
     */
    public void attachDirty(OcUeberweisung instance);

    /**
     * has to do with locking.
     * 
     * @param instance
     */
    public void attachClean(OcUeberweisung instance);

    /**
     * delete an instance.
     * 
     * @param persistentInstance
     */
    public void delete(OcUeberweisung persistentInstance);

    /**
     * merge instances 
     *
     * @param detachedInstance
     * @return
     */
    public OcUeberweisung merge(OcUeberweisung detachedInstance);

    /**
     * find by primary key.
     *
     * @param id
     * @return
     */
    public OcUeberweisung findById(int id);
    
    /**
     * find all entries.
     *
     * @return
     */
    public List<OcUeberweisung> findAll();
}